1. Field of the Invention
The present invention relates to network communications and, more particularly, to the management of packet-based real-time media sessions.
2. Description of Related Art
As a general matter, it is known to establish a real-time media conference over a packet-switched network between multiple user stations, each operated by a respective user. A communication server, such as a multipoint conference unit (MCU) for instance, can reside functionally in the network and can operate as a bridging or switching device between the participating stations, to support the conference session.
In practice, a participating station might initiate the conference session by sending to the communication server a session setup message that identifies the other desired participant(s). In response, the server may then seek to connect each of the designated other participants, such as by forwarding the session setup message or sending a new session setup message to each other party. Ultimately, the server would thereby establish a conference leg with each participating station, including the initiating station, and the server would then bridge together the legs so that the users at the stations can confer with each other, exchanging voice, video and/or other media in real-time via the server.
A signaling mechanism such as the well known Session Initiation Protocol (SIP) could be used to initialize the conference and more particularly to set up each conference leg. Further, digitized media could be packetized and carried between each participating station according to a mechanism such as the well known Real-time Transport Protocol (RTP), for instance. The core industry standards for SIP (Internet Engineering Task Force (IETF) Request For Comments (RFC) 2543) and RTP (IETF RFC 1889) are hereby incorporated by reference.
Packet based media conferencing can be advantageously employed to provide an “instant connect” service, where a user of one station can readily initiate a real-time media conference with one or more designated target users at other stations. The initiating user may simply select a target user or group and then press an instant connect button on his or her station, and the user's station would responsively signal to a communication server to initiate a conference between the initiating user and the selected user or group. This sort of service is referred to as “instant connect” because it strives to provide a quick connection between two or more users, in contrast to telephone service where a user dials a telephone number of a party and waits for a circuit connection to be established with that party.
An example of an instant connect service is commonly known as “push-to-talk” (PTT). In a PTT system, some or all of the conference stations are likely to be wireless devices, such as cellular mobile stations, that are equipped to establish wireless packet-data connectivity and to engage in voice-over-packet (VoP) communication. Alternatively, some or all of the stations could be other sorts of devices, such as multimedia personal computers or Ethernet-telephones, that can establish packet data connectivity and engage in VoP communication through landline connections. Further, each station could be equipped with a PTT button or other mechanism that a user can engage in order to initiate a PTT session or to request the floor during an ongoing session.
In practice, a user of a PTT-equipped mobile station might select a target user or group of users from a contact list or other program menu and engage the PTT button to initiate a conference session with that user or group. In response, the mobile station may then send a session initiation message to the communication server, to set up a conference session in the manner described above for instance, and the user could begin talking with the other users. Further, a similar mechanism could be applied to establish real-time media conferences carrying video or other media as well.
A conferencing system could be designed to provide either full-duplex service or half-duplex service. In a full-duplex system, a participating station would be allowed to send and receive media at the same time, so that a user of the station could both talk and listen at once. In order to accommodate full-duplex operation, a communication server would be configured to receive media from multiple stations at once and to output to each station a mixture of the media or some representative subset of the media (e.g., a strongest signal).
In a half-duplex system, on the other hand, a participating station would at any time be allowed to either send media to the server or receive media from the server, but would be precluded from sending and receiving concurrently. In order to accommodate half-duplex operation, a communication server would be configured to apply a floor-control process, according to which the server allows only one station to have the floor at once. Only the station with the floor would be allowed to send media to the server for transmission in turn to each other participating station.
In a typical floor control process, a participant must request permission to “speak” (i.e., to send voice or other media) by sending a “floor-request” message to the server. The server then replies with a message that either grants or denies the floor. Once the server grants the floor to a participant, the server blocks all other participants from speaking (by denying all floor requests) until the speaker sends a “floor-relinquish” message to the server and the server acknowledges. Upon relinquishment of the floor, the server would then send a “floor-relinquished” message to all participants and the participants would acknowledge. Only after this entire sequence has been completed will any other participant be allowed to speak.
Half-duplex operation is particularly advantageous when user stations communicate over wireless links or other links with limited bandwidth. Unfortunately, however, the exchanges of floor control messages that occur during half-duplex operation can introduce delay into the communication process, which is undesirable.